﻿/**********************************************************/
/* Interface Schiedsrechter. */
/* 13-10-2010 - Groep 6: Scheidsrechter(Lars Mohr 0629693, Roy Mengelers 0705020, Roy Lieben 0847186, Timothy Janssen 0951986, Lars Brand 0901164 - */
/*	
/* Omschrijving:
/* De interface die een verbinding heeft met de spelleider.*/
/**********************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Roborally.Scheidsrechter
{
    public interface IScheidsRechter
    {
        /// <summary>
        /// Geeft een Aantal kaarten terug 
        /// </summary>
        /// <param name="InputParameters">Het aantal shadepunten dat een persoon heeft.</param>
        /// <returns>int aantal kaarten</returns>
        ReturnScheidsrechter VraagAantalKaarten(InputScheidsrechter InputParameters);

        /// <summary>
        /// sorteerd een lijst prioriteiten en geeft deze terug
        /// </summary>
        /// <param name="InputParameters">Aantal schadePunten</param>
        /// <returns></returns>
        ReturnScheidsrechter VraagVolgorde(InputScheidsrechter InputParameters);
        /// <summary>
        /// Voert een kaart uit voor een speler. 
        /// </summary>
        /// <param name="InputParameters">Een bord, Een Speler, Een lijst met tegenstanders(zonder de speler waar de kaart voor is), Een kaart</param>
        /// <returns>de speler, de lijst met spelers.</returns>
        ReturnScheidsrechter VoerZetUit(InputScheidsrechter InputParameters);
        /// <summary>
        /// Laat de banden draaien
        /// </summary>
        /// <param name="InputParameters">lijst met spelers en een bord</param>
        /// <returns>lijst met spelers</returns>
        ReturnScheidsrechter Loopbanden(InputScheidsrechter InputParameters);
        /// <summary>
        /// Laat de robots die op een Tandwiel staan draaien
        /// </summary>
        /// <param name="InputParameters">bord, List met Spelers</param>
        /// <returns>Lijst met spelers</returns>
        ReturnScheidsrechter Draaien(InputScheidsrechter InputParameters);
        /// <summary>
        /// Voert de pushers uit.
        /// </summary>
        /// <param name="InputParameters">Bord, Registratiefase, Lijst met spelers</param>
        /// <returns>lijst met Spelers</returns>
        ReturnScheidsrechter Pushers(InputScheidsrechter InputParameters);
        /// <summary>
        /// kijkt welke robots damage krijgen aan de hand van de lasers
        /// </summary>
        /// <param name="InputParameters">Bord, Lijst met spelers</param>
        /// <returns>Lijst met spelers</returns>
        ReturnScheidsrechter Lasers(InputScheidsrechter InputParameters);
        /// <summary>
        /// Aangegeven of spelers worden terug gezet, Of spelers hun Respawn punt moet worden verplaats, Of spelers een vlag hebben gehaald.
        /// </summary>
        /// <param name="InputParameters">bord, lisjt met spelers</param>
        /// <returns>lijst met spelers</returns>
        ReturnScheidsrechter Eind(InputScheidsrechter InputParameters);
        /// <summary>
        /// Returned 30 
        /// </summary>
        /// <returns>ik bedoel, geeft een tijd terug die wordt gebruikt om spelers die lang denken het leven zuur te maken</returns>
        int VraagTimerTijd();
    }
}
